{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 请简述基于内容的推荐和基于协同过滤的推荐的基本原理，并指出二者的适用场景。（20分）\n",
    "2. 请分别给出一个基于用户的协同过滤和基于物品的协同过滤的典型应用场景。（20分）\n",
    "3. 将推荐电影数目改成20个，运行课程给的代码，比较三种协同过滤算法的性能，并和推荐数目为10的推荐结果比较。（60分）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1 请简述基于内容的推荐和基于协同过滤的推荐的基本原理，并指出二者的适用场景。（20分）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "基于内容的推荐基本原理，根据用户过去喜欢的物品，寻找相似的物品推荐给他。适用购物推荐\n",
    "\n",
    "基于协同过滤的推荐的基本原理，基于“群体智慧”进行推荐，先过滤掉大部分内容，只保留少部分相关的物品，利用系统中很多用户的历史行为。适用电影音乐推荐  \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. 请分别给出一个基于用户的协同过滤和基于物品的协同过滤的典型应用场景。（20分）\n",
    "\n",
    "基于用户的协同过滤：新闻推荐\n",
    "\n",
    "基于物品的协同过滤：图书推荐"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. 将推荐电影数目改成20个，运行课程给的代码，比较三种协同过滤算法的性能，并和推荐数目为10的推荐结果比较。（60分）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "基于用户的协同过滤推荐:  \n",
    "电影数目为20：precision：0.001851851851851852,recall：,0.00085,coverage：0.17454545454545456,rmse：0.9658669077094278   \n",
    "电影数目为10：precision：0.0010893246187363835，recall：0.00025，coverage：0.10787878787878788，rmse:0.9658669077094278  \n",
    "基于物品的协同过滤推荐:  \n",
    "电影数目为20：precision：0.0659041394335512，recall：0.03025，coverage：0.7260606060606061，rmse：1.1327763491486122    \n",
    "电影数目为10：precision：0.06274509803921569，recall：0.0144，coverage：0.48727272727272725，rmse：1.1327763491486122   \n",
    "基于模型（SVD)的协同过滤推荐:   \n",
    "电影数目为20：precision：0.07745098039215687，recall：0.03555，coverage：0.14606060606060606，rmse：0.925371183729138   \n",
    "电影数目为10：precision：0.0747276688453159，recall：0.01715，coverage：0.09818181818181818，rmse：0.925371183729138\n",
    "\n",
    "三个协同过滤基于模型好于基于物品好于基于用户，推荐数量多，效果会好一些。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
